/**
 * 设置带有过期时间的本地存储
 * @param {string} key 存储的键
 * @param {any} value 存储的值
 * @param {number} exp 过期时间（以毫秒为单位）
 */
export const setLocalStorageWithExpiry = (key: string, value: unknown, exp: number) => {
	const now = new Date()
	const item = {
		value: value, // 存储的值
		expiry: now.getTime() + exp // 过期时间
	}
	localStorage.setItem(key, JSON.stringify(item))
}

/**
 * 获取本地存储的值，如果过期则返回 null
 * @param {string} key 存储的键
 * @returns {any | null} 存储的值或者 null（如果过期）
 */

export const getLocalStorageWithExpiry = (key: string) => {
	const itemStr = localStorage.getItem(key)
	// 如果不存在，则直接返回 null
	if (!itemStr) {
		return null
	}
	const item = JSON.parse(itemStr)
	const now = new Date()
	// 检查过期时间
	if (now.getTime() > item.expiry) {
		// 如果已过期，删除存储并返回 null
		localStorage.removeItem(key)
		return null
	}
	return item.value
}
